home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / misc / hldevkit.lha / HotLinks_Developers_Kit / includes / hotlinks / hotlinks.h next >
Encoding:
C/C++ Source or Header  |  1992-04-28  |  9.8 KB  |  317 lines

  1. /*
  2.  *
  3.  * hotlinks.h - C include file for using the hotlink.library
  4.  *
  5.  *
  6.  */
  7.  
  8. #ifndef HOTLINKS_HOTLINKS_H
  9. #define HOTLINKS_HOTLINKS_H       1
  10.  
  11. #ifndef EXEC_PORTS_H
  12. #include <exec/ports.h>
  13. #endif EXEC_PORTS_H 
  14.  
  15. /* the name of the hotlinks library */
  16. #define HOTLINKS_LIBRARY_NAME   "hotlinks.library"
  17.  
  18. /* define message id types 1-255 */
  19. #define HLMSGID_HLSYSINFO       0
  20. #define HLMSGID_HLREGISTER      1
  21. #define HLMSGID_UNREGISTER      2
  22. #define HLMSGID_ALLOCPBLOCK     3
  23. #define HLMSGID_FREEPBLOCK      4
  24. #define HLMSGID_SETUSER         5
  25. #define HLMSGID_CHGPASSWORD     6
  26. #define HLMSGID_FIRSTPUB        7
  27. #define HLMSGID_NEXTPUB         8
  28. #define HLMSGID_REMOVEPUB       9
  29. #define HLMSGID_NOTIFY          10
  30. #define HLMSGID_PUBSTATUS       11
  31. #define HLMSGID_GETINFO         12
  32. #define HLMSGID_SETINFO         13
  33. #define HLMSGID_LOCKPUB         14
  34. #define HLMSGID_OPENPUB         15
  35. #define HLMSGID_READPUB         16
  36. #define HLMSGID_WRITEPUB        17
  37. #define HLMSGID_SEEKPUB         18
  38. #define HLMSGID_CLOSEPUB        19
  39. #define HLMSGID_NOTIFYREPLY     20
  40. #define HLMSGID_DOWN            21
  41. /* 22-65535 are reserved for future use */
  42.  
  43. /* error codes - returned in the Return field of the HLMsg  */
  44. #define NOERROR         0
  45. #define INVPARAM        -1
  46. #define NOPRIV          -2
  47. #define NOMEMORY        -3
  48. #define READLOCKED      -4
  49. #define WRITELOCKED     -5
  50. #define UNREGISTERED    -6
  51. #define INUSE           -7
  52. #define IOERROR         -8
  53. #define NOMOREBLOCKS    -9
  54. #define CHANGED         -10
  55. #define UNIMPLEMENTED   -11
  56.  
  57.  
  58. /* types of locks */
  59. #define LOCK_RELEASE    0
  60. #define LOCK_READ       1
  61. #define LOCK_WRITE      2
  62. #define LOCK_FLAGS      3
  63.  
  64.  
  65. /* types of open */
  66. #define OPEN_READ       1
  67. #define OPEN_WRITE      2
  68. #define OPEN_MODIFY     3
  69. #define OPEN_FLAGS      3
  70.  
  71.  
  72. /* file states */
  73. #define STATE_READLOCKED        1
  74. #define STATE_WRITELOCKED       2
  75. #define STATE_OPENEDR           3
  76. #define STATE_OPENEDW           4
  77.  
  78.  
  79. /* access codes */
  80. #define ACC_OREAD       1
  81. #define ACC_OWRITE      2
  82. #define ACC_GREAD       16
  83. #define ACC_GWRITE      32
  84. #define ACC_AREAD       256
  85. #define ACC_AWRITE      512
  86.  
  87. #define ACC_DEFINED     (ACC_OREAD|ACC_OWRITE|ACC_GREAD|ACC_GWRITE|ACC_AREAD|ACC_AWRITE)
  88. #define ACC_DEFAULT     (ACC_OREAD|ACC_OWRITE|ACC_GREAD|ACC_GWRITE)
  89.  
  90.  
  91. /* types of notify supported */
  92. #define INFORM          0
  93. #define NOINFORM        1
  94. #define EXINFORM        2
  95.  
  96.  
  97. /* returned from user supplied filter proc called by getpub */
  98. #define ACCEPT          0
  99. #define NOACCEPT        1
  100.  
  101.  
  102. /* seek modes */
  103. #define SEEK_BEGINNING  -1
  104. #define SEEK_CURRENT     0
  105. #define SEEK_END         1
  106.  
  107.  
  108. /* hotlink file types and IFF chunks */
  109. #define CSET (('C'<<24)+('S'<<16)+('E'<<8)+('T')) 
  110. #define DTXT (('D'<<24)+('T'<<16)+('X'<<8)+('T')) 
  111. #define DTAG (('D'<<24)+('T'<<16)+('A'<<8)+('G'))
  112. #define HLID (('H'<<24)+('L'<<16)+('I'<<8)+('D')) 
  113. #ifndef ILBM
  114. #define ILBM (('I'<<24)+('L'<<16)+('B'<<8)+('M'))
  115. #endif
  116.  
  117.  
  118. /* hotlink message Class - to aviod IDCMP collision */
  119. #define HLCLASS         3
  120.  
  121.  
  122. /* IFF chunk XBMI picture values */
  123. #define ILBM_PAL        0
  124. #define ILBM_GREY       1
  125. #define ILBM_RGB        2
  126. #define ILBM_RGBA       3
  127. #define ILBM_CMYK       4
  128. #define ILBM_CMYKA      5
  129. #define ILBM_BW         6
  130. /* 7-255 are reserved for future expansion */
  131.  
  132. /* commands imbedded in the TEXT & TAG chunks of a HotLink TEXT file */
  133. #define TEXT_TAB        1
  134. #define TEXT_NEWLINE    2
  135. #define TEXT_EOC        3
  136. #define TEXT_EOP        4
  137. #define TEXT_BCCB       5
  138. #define TEXT_ECCB       6
  139. #define TEXT_BCPB       7
  140. #define TEXT_ECPB       8
  141. #define TEXT_PAGENUM    9
  142. #define TEXT_MARK       10
  143. #define TEXT_BRANGE     11
  144. #define TEXT_ERANGE     12
  145. #define TEXT_FOOTNOTE   13
  146. #define TEXT_RULER      14
  147. #define TEXT_BAKERN     15
  148. #define TEXT_EAKERN     16
  149. #define TEXT_BAHYPHEN   17 
  150. #define TEXT_EAHYPHEN   18
  151. #define TEXT_TRACKRANGE 19
  152. #define TEXT_DROPCAP    20
  153.                 
  154. #define TEXT_TAG        30
  155. #define TEXT_FONT       31
  156. #define TEXT_ATTRB      32
  157. #define TEXT_POINT      33
  158. #define TEXT_JUSTIFY    34
  159. #define TEXT_PARAGRAPH  35
  160. #define TEXT_INDENT     36
  161. #define TEXT_LEADING    37
  162. #define TEXT_PARALEAD   38
  163. #define TEXT_TRACKING   39
  164. #define TEXT_BASELINE   40
  165.  
  166. #define TEXT_MKERN      50
  167. #define TEXT_AKERN      51
  168. #define TEXT_MHYPHEN    52
  169. #define TEXT_AHYPHEN    53
  170.  
  171. /* flags for commands imbedded in the DTXT & TAG chunks of a HotLinks DTXT file */
  172. #define TFLAG_NODISP        0
  173. #define TFLAG_NOEDITDISP    1
  174. #define TFLAG_EDITDISP        2
  175. #define TFLAG_UNUSED0        3
  176.  
  177. #define TFLAG_KEEPLAST        0
  178. #define TFLAG_KEEPNONE        4
  179. #define TFLAG_KEEPALL        8
  180. #define TFLAG_UNUSED1        12
  181.  
  182. #define TFLAG_NOTWHITESPACE    0
  183. #define TFLAG_WHITESPACE    16
  184.  
  185. #define TEXT_FLAGS_TAB        (TFLAG_KEEPNONE|TFLAG_WHITESPACE)
  186. #define TEXT_FLAGS_NEWLINE    (TFLAG_KEEPNONE|TFLAG_WHITESPACE)
  187. #define TEXT_FLAGS_EOC        (TFLAG_KEEPNONE|TFLAG_NOTWHITESPACE)
  188. #define TEXT_FLAGS_EOP        (TFLAG_KEEPNONE|TFLAG_NOTWHITESPACE)
  189. #define TEXT_FLAGS_BCCB       (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  190. #define TEXT_FLAGS_ECCB       (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  191. #define TEXT_FLAGS_BCPB       (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  192. #define TEXT_FLAGS_ECPB       (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  193. #define TEXT_FLAGS_PAGENUM    (TFLAG_KEEPNONE|TFLAG_WHITESPACE)
  194. #define TEXT_FLAGS_MARK       (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  195. #define TEXT_FLAGS_BRANGE     (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  196. #define TEXT_FLAGS_ERANGE     (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  197. #define TEXT_FLAGS_FOOTNOTE   (TFLAG_KEEPNONE|TFLAG_WHITESPACE)
  198. #define TEXT_FLAGS_RULER      (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  199. #define TEXT_FLAGS_BAKERN     (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  200. #define TEXT_FLAGS_EAKERN     (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  201. #define TEXT_FLAGS_BAHYPHEN   (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  202. #define TEXT_FLAGS_EAHYPHEN   (TFLAG_KEEPALL|TFLAG_NOTWHITESPACE)
  203. #define TEXT_FLAGS_TRACKRANGE (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  204. #define TEXT_FLAGS_DROPCAP    (TFLAG_KEEPNONE|TFLAG_WHITESPACE)
  205.  
  206. #define TEXT_FLAGS_TAG        (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  207. #define TEXT_FLAGS_FONT       (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  208. #define TEXT_FLAGS_ATTRB      (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  209. #define TEXT_FLAGS_POINT      (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  210. #define TEXT_FLAGS_JUSTIFY    (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  211. #define TEXT_FLAGS_PARAGRAPH  (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  212. #define TEXT_FLAGS_INDENT     (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  213. #define TEXT_FLAGS_LEADING    (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  214. #define TEXT_FLAGS_PARALEAD   (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  215. #define TEXT_FLAGS_TRACKING   (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  216. #define TEXT_FLAGS_BASELINE   (TFLAG_KEEPLAST|TFLAG_NOTWHITESPACE)
  217.  
  218. #define TEXT_FLAGS_MKERN      (TFLAG_KEEPNONE|TFLAG_NOTWHITESPACE)
  219. #define TEXT_FLAGS_AKERN      (TFLAG_KEEPNONE|TFLAG_NOTWHITESPACE)
  220. #define TEXT_FLAGS_MHYPHEN    (TFLAG_KEEPNONE|TFLAG_NOTWHITESPACE)
  221. #define TEXT_FLAGS_AHYPHEN    (TFLAG_KEEPNONE|TFLAG_NOTWHITESPACE)
  222.  
  223.  
  224. /* atrributes for the TEXT_ATTRB command */
  225. #define ATTRB_NORMAL    'N'
  226. #define ATTRB_BOLD      'B'
  227. #define ATTRB_LIGHT     'L'
  228. #define ATTRB_ITALIC    'I'
  229. #define ATTRB_SHADOW    'S'
  230. #define ATTRB_OUTLINE   'O'
  231. #define ATTRB_UNDERLINE 'U'
  232. #define ATTRB_WEIGHT    'W'
  233.                 
  234. /* justify modes for the TEXT_JUSTIFY command */
  235. #define JUSTIFY_LEFT    1
  236. #define JUSTIFY_CENTER  2
  237. #define JUSTIFY_RIGHT   3
  238. #define JUSTIFY_CHAR    4
  239. #define JUSTIFY_WORD    5
  240. #define JUSTIFY_AUTO    6
  241.  
  242. /* TAG Types */
  243. #define TAG_TEXT        0
  244. #define TAG_FILL        1
  245. #define TAG_LINE        2
  246. #define TAG_COLOR       3
  247. #define TAG_WITHTEXT    4
  248. #define TAG_TEXTMACRO   5
  249.  
  250.  
  251. /* hotlinks message struct */
  252. struct HLMsg
  253. {
  254.     struct Message mess;                /* standard exec style message */
  255.     int HLClass;                        /* message class - like IntuiMessage */
  256.     unsigned short int ID;              /* message id - type of message */
  257.     struct PubBlock *PB;                /* pointer to a publock */
  258.     unsigned int Flags;                 /* flags */
  259.     int Return;                         /* return code */
  260.     unsigned int UserData1;             /* user data slots */
  261.     unsigned int UserData2;
  262.     unsigned int UserData3;
  263.     unsigned int UserData4;
  264.     unsigned int UserData5;
  265.     unsigned int UserData6;
  266.     unsigned int UserData7;
  267.     unsigned int UserData8;
  268.     unsigned int UserData9;
  269.     unsigned int UserData10;
  270.     unsigned int UserData11;
  271.     unsigned int UserData12;
  272.     unsigned int UserData13;
  273.     unsigned int UserData14;
  274.     unsigned int UserData15;
  275. };
  276.  
  277.  
  278. /* edition information struct (publication record) */
  279. struct PubRecord
  280. {
  281.         unsigned int ID[2];             /* two part id number */
  282.         unsigned int Type;              /* edition type ILBM or DTXT, etc. */
  283.         unsigned int Version;           /* edition version number */
  284.         unsigned int CDate;             /* creation date */
  285.         unsigned int CTime;             /* creation time */
  286.         unsigned int MDate;             /* last modified data */
  287.         unsigned int MTime;             /* last modified time */
  288.         unsigned int Access;            /* access codes */
  289.         unsigned int Creator;           /* who created this edition */
  290.         char Name[32];                  /* name of the edition file */
  291.         char Desc[256];                 /* description of the edition file */
  292.         char Owner[32];                 /* user that created the edition file */
  293.         char Group[32];                 /* the user's group */
  294. };
  295.  
  296.  
  297. /* publication block as returned by AllocPBlock() */
  298. struct PubBlock
  299. {
  300.         struct PubRecord PRec;
  301.                 
  302. /* this data is Private and should NOT be changed by an application */
  303.         int State;
  304.         int OFlag;
  305.         int LFlag;
  306.         unsigned int FOffset;
  307.         struct MsgPort *MP;
  308.         struct MsgPort *usermp;
  309.         struct HLMsg *msg;
  310.         struct Screen *screen;
  311.         int curpos;
  312.         char *buffer;
  313.         int remain;
  314. };
  315.  
  316. #endif HOTLINKS_HOTLINKS_H
  317.